/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.sgsmcan.Entidad;

import java.io.Serializable;
import java.sql.Timestamp;
import javax.persistence.AssociationOverride;
import javax.persistence.AssociationOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author GOMEZ
 */
@Entity
@Table(name = "SERENO_HAS_PERRO")
@AssociationOverrides({
    @AssociationOverride(name = "spk.sereno",
            joinColumns = @JoinColumn(name = "IDSERENO")),
    @AssociationOverride(name = "spk.perro", joinColumns = @JoinColumn(name = "IDPERRO"))})
public class SerenoPerro implements Serializable {

    private SerenoPerroId spk = new SerenoPerroId();

    Timestamp fechaasignacion;

    boolean estado;

    public SerenoPerro() {
    }

    @EmbeddedId
    public SerenoPerroId getSpk() {
        return spk;
    }

    public void setSpk(SerenoPerroId spk) {
        this.spk = spk;
    }

    @Transient
    public Sereno getSereno() {
        return getSpk().getSereno();
    }

    public void setSereno(Sereno sereno) {
        getSpk().setSereno(sereno);
    }

    @Transient
    public Perro getPerro() {
        return getSpk().getPerro();
    }

    public void setPerro(Perro perro) {
        getSpk().setPerro(perro);
    }

    @Column(name = "FECHAASIGNACION")
    public Timestamp getFechaasignacion() {
        return this.fechaasignacion;
    }

    public void setFechaasignacion(Timestamp fechaasignacion) {
        this.fechaasignacion = fechaasignacion;
    }

    @Column(name = "ESTADO")
    public boolean isEstado() {
        return estado;
    }

    public void setEstado(boolean estado) {
        this.estado = estado;
    }

    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }

        SerenoPerro that = (SerenoPerro) o;

        if (getSpk() != null ? !getSpk().equals(that.getSpk())
                : that.getSpk() != null) {
            return false;
        }

        return true;
    }

    public int hashCode() {
        return (getSpk() != null ? getSpk().hashCode() : 0);
    }

    

}
